<template>
  <view :style="colorStyle">
    <view class='order-submission'>
      <view class="allAddress" v-if="product_type == 0">
        <!-- #ifdef MP -->
        <!-- 桌码信息 -->
        <view v-if="tableId" class="table-header">
          <view class="top">
            <view class="name">{{ codeData.storeName.storeName }}</view>
            <view class="number"><text class="light">{{ codeData.category.name }}{{ codeData.table_number }}</text>号桌</view>
          </view>
          <view>{{ codeData.serial_number }}</view>
        </view>
        <!-- #endif -->
        <!-- 地址 -->
        <view v-if="!tableId" class='headerCon'>
          <view class="add-title acea-row row-between-wrapper">
            <view class="acea-row row-middle">
              <view class="icon" :class="deliveryType==1?'':deliveryType==3?'orange':'red'">{{deliveryType==1?'商城配送':deliveryType==2?'门店自提':'门店配送'}}</view>
              <view class="text add-text line1" v-if="deliveryType==1">由平台为您提供配送服务</view>
              <view class="text add-text line1" v-if="deliveryType==2">线上下单，到店自提</view>
              <view class="text add-text line1" v-if="deliveryType==3">{{system_store.name || '请选择门店'}}</view>
            </view>
            <view class="text" @tap='onDelivery' v-if="(isDisplay.length >1 || (isDisplay.length==1 && deliveryType !=1)) && store_func_status && goodsType != 9">点击切换 <text class='iconfont icon-jiantou'></text></view>
          </view>
          <view class="address acea-row row-between-wrapper" @tap="onAddress(addressInfo.real_name)" v-if="deliveryType==1 || deliveryType==3">
            <view class="addressCon" v-if="addressInfo.real_name">
              <view class='name acea-row row-middle'><view class="nameCon line1">{{addressInfo.real_name}}</view><text class='phone'>{{addressInfo.phone}}</text></view>
              <view class="line1">
                <text class='default font-num'
                      v-if="addressInfo.is_default">[默认]</text>{{addressInfo.province}}{{addressInfo.city}}{{addressInfo.district}}{{addressInfo.street}}{{addressInfo.detail}}
              </view>
            </view>
            <view class='addressCon' v-else>
              <view class='setaddress'>设置收货地址</view>
            </view>
            <view class="iconfont icon-s-bianji"></view>
          </view>
          <view class="address acea-row row-between-wrapper" v-else>
            <view class="addressCon" v-if="storeList.length>0">
              <view class='name acea-row row-middle'><view class="nameCon line1 on">{{system_store.name || ''}}</view></view>
              <view class="line1">
                {{system_store.address || ''}}{{system_store.detailed_address || ''}}
              </view>
            </view>
            <view class='addressCon' v-else>
              <view class='setaddress'>暂无门店信息</view>
            </view>
            <view class="icon acea-row row-middle" v-if="storeList.length>0">
              <view class="iconfont icon-dianhua" @click.stop="call(system_store.phone)"></view>
              <view class="iconfont icon-dingwei2"  @click.stop="showMaoLocation(system_store)"></view>
            </view>
          </view>
        </view>
        <view v-if="!tableId" class='line'>
          <image src='/static/images/line.jpg'></image>
        </view>
      </view>
      <view class="wrapper">
        <group-goods-list v-if="collage_id" :goods-list="goodsList"></group-goods-list>
        <orderGoods v-else :cartInfo="cartInfo" :giveData="giveData" :shippingType="shippingType" :product_type='product_type'
                    :giveCartInfo="giveCartInfo"></orderGoods>
      </view>
      <view class='wrapper'>
        <view class='item acea-row row-between-wrapper' @tap='couponTap'
              v-if="!pinkId && !BargainId && !combinationId && !seckillId&& !noCoupon && !discountId && goodsType != 7 && priceGroup.firstOrderPrice==0">
          <view v-if="recharcardId">商品兑换券</view>
          <view v-else>优惠券</view>
          <view class='discount' :style="{ color: choiceColor + ' !important', fontWeight:choiceweight }">{{couponTitle}}
            <text class='iconfont icon-jiantou'></text>
          </view>
        </view>
        <view class='item acea-row row-between-wrapper' v-if="!pinkId && !BargainId && !combinationId && !seckillId && integral_ratio_status == 1">
          <view>积分抵扣</view>
          <view class='discount acea-row row-middle'>
            <view> {{useIntegral ? "剩余积分":"当前积分"}}
              <text class='num font-color'>{{integral || 0}}</text>
            </view>
            <checkbox-group @change="ChangeIntegral">
              <checkbox :disabled="integral<=0 && !useIntegral" :checked='useIntegral ? true : false' />
            </checkbox-group>
          </view>
        </view>
        <view v-if="invoice_func || special_invoice" class='item acea-row row-between-wrapper' @tap="goInvoice">
          <view>开具发票</view>
          <view class='discount'>
            {{invTitle}}
            <text class='iconfont icon-jiantou'></text>
          </view>
        </view>
        <!-- <view class='item acea-row row-between-wrapper' v-if="priceGroup.vipPrice > 0 && userInfo.vip && !pinkId && !BargainId && !combinationId && !seckillId">
					<view>会员优惠</view>
					<view class='discount'>-￥{{priceGroup.vipPrice}}</view>
				</view>
				<view class='item acea-row row-between-wrapper' v-if='shippingType==0'>
					<view>快递费用</view>
					<view class='discount' v-if='priceGroup.storePostage > 0'>+￥{{priceGroup.storePostage}}</view>
					<view class='discount' v-else>免运费</view>
				</view> -->
        <view v-if="shippingType == 1">
          <view class="item acea-row row-between-wrapper">
            <view>联系人</view>
            <view class="discount">
              <input v-model="contacts" type="text" placeholder="请填写您的联系姓名" placeholder-class="placeholder"></input>
            </view>
          </view>
          <view class="item acea-row row-between-wrapper">
            <view>联系电话</view>
            <view class="discount">
              <input type="number" maxlength="11" v-model="contactsTel" placeholder="请填写您的联系电话"
                     placeholder-class="placeholder"></input>
            </view>
          </view>
        </view>
        <!-- <view class='item acea-row row-between-wrapper' wx:else>
		      <view>自提门店</view>
		      <view class='discount'>{{system_store.name}}</view>
		    </view> -->
        <view class='item' v-if="textareaStatus">
          <view>备注信息</view>
          <!-- <view class="placeholder-textarea"> -->
          <textarea placeholder-class='placeholder' placeholder="请添加备注（150字以内）" :always-embed="true" :adjust-position="true" cursor-spacing="30" v-if="!coupon.coupon"
                    @input='bindHideKeyboard' :value="mark" :maxlength="150" name="mark">
						</textarea>
          <!-- 	<view class="placeholder" @click="clickTextArea" v-show="!mark">
							请添加备注（150字以内）
						</view> -->
          <!-- </view> -->
        </view>
      </view>
      <view class='wrapper' v-if="confirm.length">
        <view class='item acea-row row-between-wrapper' :class="{on:(item.name=='radios' || item.name=='checkboxs'),on2:item.name == 'dateranges',on3:item.name == 'citys'}" v-for="(item,index) in confirm" :key="index">
          <view class="name">
            <span class="asterisk" v-if="item.titleShow.val">*</span>
            {{ item.titleConfig.value }}
          </view>
          <!-- radio -->
          <view v-if="item.name=='radios'" class="discount">
            <radio-group @change="radioChange(e, index, item)" class="acea-row row-middle row-right">
              <label class="radio" v-for="(j,jindex) in item.wordsConfig.list" :key="jindex">
                <view class="acea-row row-middle">
                  <!-- #ifndef MP -->
                  <radio :value="jindex.toString()" :checked='j.show'/>
                  <!-- #endif -->
                  <!-- #ifdef MP -->
                  <radio :value="jindex" :checked='j.show'/>
                  <!-- #endif -->
                  <view>{{j.val}}</view>
                </view>
              </label>
            </radio-group>
          </view>
          <!-- checkbox -->
          <view v-if="item.name=='checkboxs'" class="discount">
            <checkbox-group @change="checkboxChange($event, index, item)" class="acea-row row-middle row-right">
              <label class="radio" v-for="(j,jindex) in item.wordsConfig.list" :key="jindex">
                <view class="acea-row row-middle">
                  <!-- #ifndef MP -->
                  <checkbox :value="jindex.toString()" :checked="j.show" style="transform:scale(0.9)" />
                  <!-- #endif -->
                  <!-- #ifdef MP -->
                  <checkbox :value="jindex" :checked="j.show" style="transform:scale(0.9)" />
                  <!-- #endif -->
                  <view>{{j.val}}</view>
                </view>
              </label>
            </checkbox-group>
          </view>
          <!-- text -->
          <view v-if="item.name=='texts' && item.valConfig.tabVal == 0" class="discount">
            <input type="text" :placeholder="item.tipConfig.value" placeholder-class="placeholder" v-model="item.value" />
          </view>
          <!-- number -->
          <view v-if="item.name=='texts' && item.valConfig.tabVal == 4" class="discount">
            <input type="number" :placeholder="item.tipConfig.value" placeholder-class="placeholder" v-model="item.value" />
          </view>
          <!-- email -->
          <view v-if="item.name=='texts' && item.valConfig.tabVal == 3" class="discount">
            <input type="text" :placeholder="item.tipConfig.value" placeholder-class="placeholder" v-model="item.value" />
          </view>
          <!-- data -->
          <view v-if="item.name=='dates'" class="discount">
            <picker mode="date" :value="item.value" @change="bindDateChange($event,index)">
              <view class="acea-row row-between-wrapper">
                <view v-if="item.value == ''">{{item.tipConfig.value}}</view>
                <view v-else>{{item.value}}</view>
                <text class='iconfont icon-jiantou'></text>
              </view>
            </picker>
          </view>
          <!-- dateranges -->
          <view v-if="item.name=='dateranges'" class="discount">
            <uni-datetime-picker v-model="item.value" type="daterange" @maskClick="maskClick">
              {{item.value.length?item.value[0]+' - '+item.value[1]:item.tipConfig.value}}
              <text class='iconfont icon-jiantou'></text>
            </uni-datetime-picker>
          </view>
          <!-- time -->
          <view v-if="item.name=='times'" class="discount">
            <picker mode="time" :value="item.value" @change="bindTimeChange($event,index)"
                    :placeholder="item.tipConfig.value">
              <view class="acea-row row-between-wrapper">
                <view v-if="item.value == ''">{{item.tipConfig.value}}</view>
                <view v-else>{{item.value}}</view>
                <text class='iconfont icon-jiantou'></text>
              </view>
            </picker>
          </view>
          <!-- timeranges -->
          <view v-if="item.name=='timeranges'" class="discount acea-row row-between-wrapper" @click="getTimeranges(index)">
            <view v-if="item.value">{{item.value}}</view>
            <view v-else>{{item.tipConfig.value}}</view>
            <text class='iconfont icon-jiantou'></text>
          </view>
          <!-- select -->
          <view v-if="item.name=='selects'" class="discount">
            <picker :value="item.value" :range="item.wordsConfig.list" @change="bindSelectChange($event,index,item)" range-key="val">
              <view class="acea-row row-between-wrapper">
                <view v-if="item.value == ''">请选择</view>
                <view v-else>{{item.value}}</view>
                <text class='iconfont icon-jiantou'></text>
              </view>
            </picker>
          </view>
          <!-- city -->
          <view v-if="item.name=='citys'" class="discount" @click="changeRegion(index)">
            <view class="acea-row row-middle row-right">
              <view class="city" v-if="item.value == ''">{{item.tipConfig.value}}</view>
              <view class="city" v-else>{{item.value}}</view>
              <text class='iconfont icon-jiantou'></text>
            </view>
          </view>
          <!-- id -->
          <view v-if="item.name=='texts' && item.valConfig.tabVal == 2" class="discount">
            <input type="idcard" :placeholder="item.tipConfig.value" placeholder-class="placeholder" v-model="item.value" />
          </view>
          <!-- phone -->
          <view v-if="item.name=='texts' && item.valConfig.tabVal == 1" class="discount">
            <input type="number" :placeholder="item.tipConfig.value" placeholder-class="placeholder" v-model="item.value" />
          </view>
          <!-- img -->
          <view v-if="item.name=='uploadPicture'" class="confirmImg">
            <view class='upload acea-row row-middle'>
              <view class='pictrue' v-for="(items,indexs) in item.value" :key="indexs">
                <image :src='items' mode="aspectFill"></image>
                <!-- <view class='iconfont icon-guanbi1 font-num' @tap='DelPic(index,indexs)'></view> -->
                <view class="close acea-row row-center-wrapper" @tap='DelPic(index,indexs)'>
                  <view class="iconfont icon-guanbi5"></view>
                </view>
              </view>
              <view class='pictrue acea-row row-center-wrapper row-column' @tap='uploadpic(index)'
                    v-if="item.value.length < item.numConfig.val">
                <text class='iconfont icon-icon25201'></text>
                <view>上传图片</view>
              </view>
            </view>
          </view>

        </view>
      </view>
      <view class='moneyList'>
        <view class='item acea-row row-between-wrapper'>
          <view>商品总价：</view>
          <!-- {{(parseFloat(priceGroup.totalPrice)+parseFloat(priceGroup.vipPrice)).toFixed(2)}} -->
          <view class='money'>
            ￥{{priceGroup.sumPrice}}
          </view>
        </view>
        <view class='item acea-row row-between-wrapper' v-if="priceGroup.storePostage > 0">
          <view>配送运费：</view>
          <view class='money'>
            ￥{{(parseFloat(priceGroup.storePostage)+parseFloat(priceGroup.storePostageDiscount)).toFixed(2)}}
          </view>
        </view>
        <view class='item acea-row row-between-wrapper'
              v-if="priceGroup.vipPrice > 0 && userInfo.vip && !pinkId && !BargainId && !combinationId && !seckillId && !discountId">
          <view>会员商品优惠：</view>
          <view class='money'>-￥{{parseFloat(priceGroup.vipPrice).toFixed(2)}}</view>
        </view>
        <view class='item acea-row row-between-wrapper' v-if="priceGroup.storePostageDiscount > 0">
          <view>会员运费优惠：</view>
          <view class='money'>-￥{{parseFloat(priceGroup.storePostageDiscount).toFixed(2)}}</view>
        </view>
        <view class='item acea-row row-between-wrapper' v-if="coupon_price > 0" >     <!-- -->
          <view v-if="recharcardId">商品券抵扣：{{coupon_price}}</view>
          <view v-else>优惠券抵扣：</view>
          <view class='money'>-￥{{parseFloat(coupon_price).toFixed(2)}}</view>
        </view>
        <view class='item acea-row row-between-wrapper' v-if="parseFloat(priceGroup.firstOrderPrice) > 0">
          <view>新人首单优惠：</view>
          <view class='money'>-￥{{parseFloat(priceGroup.firstOrderPrice).toFixed(2)}}</view>
        </view>
        <view class='item acea-row row-between-wrapper' v-if="integral_price > 0">
          <view>积分抵扣：</view>
          <view class='money'>-￥{{parseFloat(integral_price).toFixed(2)}}</view>
        </view>
        <view class='item acea-row row-between' v-for="(item,index) in promotions_detail" :key="index"
              v-if="parseFloat(item.promotions_price)">
          <view>{{item.title}}：</view>
          <view class='money'>-￥{{parseFloat(item.promotions_price).toFixed(2)}}</view>
        </view>
        <!-- <view class='item acea-row row-between-wrapper' v-if="priceGroup.storePostage > 0">
					<view>运费：</view>
					<view class='money'>+￥{{priceGroup.storePostage}}</view>
				</view>
				<view class='item acea-row row-between-wrapper' v-if="priceGroup.storePostageDiscount > 0">
					<view>会员运费抵扣：</view>
					<view class='money'>-￥{{priceGroup.storePostageDiscount}}</view>
				</view> -->
      </view>
      <view class="height-add"></view>
      <view class='footer acea-row row-between-wrapper'>
        <view>合计:
          <text class='font-color'>￥{{totalPrice || 0}}</text>
        </view>
        <!-- <view class='settlement' style='z-index:100' @tap.stop="goPay"
          v-if="(((valid_count>0&&!discount_id) || (valid_count==cartInfo.length&&discount_id)) && shippingType) || (!shippingType && addressId) || product_type != 0">
          立即结算</view>
        <view class='settlement bg-color-hui' style='z-index:100' v-else>立即结算</view> -->
        <view class='settlement' style='z-index:100' @tap.stop="goPay"
              v-if="
          (((valid_count>0&&!discount_id) || (valid_count==cartInfo.length&&discount_id))) ||
          (deliveryType == 2 && !shippingType) ||
          (deliveryType == 3 && shippingType) ||
          product_type != 0"
        >
          提交订单</view>
        <view class='settlement bg-color-hui' style='z-index:100' v-else>提交订单</view>
      </view>
    </view>
    <view class="alipaysubmit" v-html="formContent"></view>
    <view class="tipaddress" v-show="isaddress">
      <view class="top"></view>
      <view class="bottom">
        <div class="font1">更新地址</div>
        <div class="font2">当前地址功能已更新，请重新修改</div>
        <div class="btn" @tap="payAddress">前往修改</div>
      </view>
    </view>

    <view class="mark" v-show="isaddress"></view>
    <couponListWindow :coupon='coupon' @ChangCouponsClone="ChangCouponsClone" :openType='openType' :cartId='cartId'
                      @ChangCoupons="ChangCoupons"></couponListWindow>
    <addressWindow ref="addressWindow" @changeTextareaStatus="changeTextareaStatus" :news='news' :address='address'
                   :pagesUrl="pagesUrl" @OnChangeAddress="OnChangeAddress" @changeClose="changeClose">
    </addressWindow>
    <home v-show="!invShow && navigation"></home>
    <invoice-picker :inv-show="invShow" :inv-list="invList" :inv-checked="invChecked" :is-special="special_invoice"
                    :url-query="urlQuery" @inv-close="invClose" @inv-change="invChange" @inv-cancel="invCancel">
    </invoice-picker>
    <payment :payMode="cartArr"  :pay_close="pay_close" :isCall="true"  :combination_status="combination_status" :totalPrice="totalPrice.toString()"
             @changePayType="changePayType"  @changMoney="changMoney" @onChangeFun="onChangeFun" ref='payment'></payment>
    <deliveryMethod ref="deliveryMethod" :isDisplay="isDisplay" :storeList="storeList" :storeSelfMention="store_self_mention" @deliveryFun="deliveryFun" @storeFun="storeFun"></deliveryMethod>
    <!-- #ifdef MP -->
    <!-- <authorize v-if="isShowAuth" @authColse="authColse" @onLoadFun="onLoadFun"></authorize> -->
    <!-- #endif -->
    <timeranges :isShow='isShow' :time='timeranges' @confrim="confrim" @cancel="cancels"></timeranges>
    <areaWindow ref="areaWindow" :display="display" :address='addressInfoArea' :cityShow='cityShow' @submit="OnAreaAddress" @changeClose="changeAddressClose"></areaWindow>
  </view>
</template>
<script>
const CACHE_CITY = {};
import dayjs from '@/plugin/dayjs/dayjs.min.js';
import {
  orderConfirm,
  getCouponsOrderPrice,
  orderCreate,
  postOrderComputed,
  checkShipping
} from '@/api/order.js';
import {
  getAddressDefault,
  getAddressDetail,
  invoiceList,
  invoiceOrder
} from '@/api/user.js';
import {
  openPaySubscribe
} from '@/utils/SubscribeMessage.js';
import {
  storeListApi,
  getCollagePartake,
  getCodeData
} from '@/api/store.js';
import {
  CACHE_LONGITUDE,
  CACHE_LATITUDE
} from '@/config/cache.js';
import areaWindow from '@/components/areaWindow';
import couponListWindow from '@/components/couponListWindow';
import addressWindow from '@/components/addressWindow';
import orderGoods from '@/components/orderGoods';
import deliveryMethod from '../components/deliveryMethod/index.vue';
import timeranges from '@/components/timeranges';
import home from '@/components/home';
import invoicePicker from '../components/invoicePicker';
import groupGoodsList from '@/components/groupGoodsList/index.vue'
import {
  toLogin
} from '@/libs/login.js';
import {
  mapGetters
} from "vuex";
import payment from '@/components/payment';
import colors from "@/mixins/color";
import { log } from 'util';
export default {
  components: {
    payment,
    invoicePicker,
    couponListWindow,
    addressWindow,
    orderGoods,
    home,
    deliveryMethod,
    timeranges,
    areaWindow,
    groupGoodsList
  },
  mixins: [colors],
  data() {
    return {
		  use_money:"",//余额支付多少钱
      addressInfoArea: [],
      cityShow: 2,
      display: false,
      timeranges:[],
      isShow:false,
      giveData: {
        give_integral: 0,
        give_coupon: []
      },
      giveCartInfo: [],
      confirm: [], //自定义留言
      id: 0,
      isaddress: false,
      textareaStatus: true,
      //支付方式
      cartArr: [
        {
          "name": "余额支付",
          "icon": "icon-yuezhifu",
          value: 'yue',
          title: '可用余额:',
          payStatus: 1,
        },
        {
        "name": "微信支付",
        "icon": "icon-weixin2",
        value: 'weixin',
        title: '使用微信快捷支付',
        payStatus: 1,
        },
        {
          "name": "支付宝支付",
          "icon": "icon-zhifubao",
          value: 'alipay',
          title: '使用线上支付宝支付',
          payStatus: 1,
        },
        {
          "name": "线下支付",
          "icon": "icon-yuezhifu1",
          value: 'offline',
          title: '选择线下付款方式',
          payStatus: 2,
        },
        {
          name: "通联支付",
          icon: "icon-yinhangqia",
          value: 'allinpay',
          title: '使用通联快速支付',
          payStatus: 1,
        },
      ],
      formContent: '',
      payType: 'weixin', //支付方式
      openType: 1, //优惠券打开方式 1=使用
      active: 0, //支付方式切换
      coupon: {
        coupon: false,
        list: [],
        statusTile: '立即使用'
      }, //优惠券组件
      address: {
        address: false
      }, //地址组件
      addressInfo: {}, //地址信息
      pinkId: 0, //拼团id
      addressId: 0, //地址id
      couponId: 0, //优惠券id
      cartId: '', //购物车id
      BargainId: 0,
      combinationId: 0,
      seckillId: 0,
      discountId: 0,
      userInfo: {}, //用户信息
      mark: '', //备注信息
      couponTitle: '请选择', //优惠券
      coupon_price: 0, //优惠券抵扣金额
      promotions_detail: [], //优惠活动金额明细
      useIntegral: false, //是否使用积分
      integral_price: 0, //积分抵扣金额
      integral: 0,
      ChangePrice: 0, //使用积分抵扣变动后的金额
      formIds: [], //收集formid
      status: 0,
      is_address: false,
      toPay: false, //修复进入支付时页面隐藏从新刷新页面
      shippingType: 0,                   // 配送方式 1=快递 ，2=门店自提，3=门店配送，4=门店收银 5 =货到付款[二开]
      system_store: {},
      storePostage: 0,
      contacts: '',
      contactsTel: '',
      mydata: {},
      storeList: [],
      store_self_mention: 0,//是开启门店自提；
      store_func_status: false,//是否开启门店自提和门店配送；
      cartInfo: [],
      priceGroup: {},
      animated: false,
      totalPrice: 0,
      integralRatio: "0",
      pagesUrl: "",
      orderKey: "",         // TOD订单信息缓存标识  必需  在确认生成订单时由后台生成
      // usableCoupon: {},
      offlinePostage: "",
      isAuto: false, //没有授权的不会自动授权
      isShowAuth: false, //是否隐藏授权
      from: '',
      news: 1,          // 购买方式：1 表示直接购买(仅买一个) 0 表示购物车购买 (可买一个也可买多个)
      invTitle: '不开发票',
      special_invoice: false,
      invoice_func: false,
      integral_ratio_status : 1,
      header_type: '',
      invShow: false,
      invList: [],
      invChecked: '',
      urlQuery: '',
      pay_close: false,
      noCoupon: 0,
      valid_count: 0,
      discount_id: 0,
      storeId: 0,
      product_type: 1,
      newImg: [],
      isDisplay: [],
      deliveryType:1,
      goodsType:0,
      product_id:0,
      choiceColor: '#999',  // 设置选择优惠券默认的样式类
      choiceweight: 'normal' , // 设置选择优惠券默认的样式类
      selectIndex:0,
      timerangesIndex:0,
      collage_id: 0,
      goodsList: [],
      tableId: 0,
      codeData: {},
      recharcardId:'',        // 商品券ID， 默认为空，当存在商品券时，优惠券券不可使用
      preRoute:"",
      combination_status : true,  //组合支付开关 默认开启
    };
  },
  computed: mapGetters(['isLogin']),
  onLoad: function(options) {
    console.log('onload options==',options);  // 加载从商品详情页传递过来的参数
    // #ifdef H5
    this.from = this.$wechat.isWeixin() ? 'weixin' : 'weixinh5';
    // #endif
    // #ifdef MP
    this.from = 'routine'
    // #endif
    if (!options.cartId) return this.$util.Tips({
      title: '请选择要购买的商品'
    }, {
      tab: 3,
      url: 1
    });
    //订单接口报错 需要返回上一级页面， 判断是返回购物车页面，还是商品详情页
    if(options.page){
      console.log("进入page")
      if(options.curid){
        console.log("进入page1")
        this.preRoute = `/pages/goods_details/index?id=${options.curid}`
      }else{
      console.log("进入page2")
        this.preRoute =  "/pages/order_addcart/order_addcart"
      }
    }
    this.deliveryType = options.delivery_type || 1;
    if(this.deliveryType == 1 || this.deliveryType == 3){
      this.addressId = options.addressId || 0;
      this.system_store.name = options.store_name;
    }
    if(this.deliveryType == 2 || this.deliveryType == 3){
      this.storeId = options.store_id || 0;
      this.system_store.id = options.store_id || 0;
    }
    this.couponId = options.couponId || 0;
    this.noCoupon = options.noCoupon || 0;
    this.product_id = options.product_id || 0;
    this.pinkId = options.pinkId ? parseInt(options.pinkId) : 0;
    this.recharcardId = options.recharcardId || 0;  // 获取商品券ID
    this.cartId = options.cartId;
    this.is_address = options.is_address ? true : false;
    this.news = !options.new || options.new === '0' ? 0 : 1;
    uni.setStorageSync('news', this.news);
    this.invChecked = options.invoice_id || '';
    this.header_type = options.header_type || '1';
    if (options.recharcardId){
      console.log('1111111111111',options.recharcard_title)
      this.couponTitle = options.recharcard_title || '请选择商品券'
    }else {
      console.log('2222222')
      this.couponTitle = options.couponTitle || '请选择优惠券'
    }
    switch (options.invoice_type) {
      case '1':
        this.invTitle = '增值税电子普通发票';
        break;
      case '2':
        this.invTitle = '增值税电子专用发票';
        break;
    }
    if (options.invoice_name) {
      this.invTitle = options.invoice_name;
    }
    // #ifndef APP-PLUS
    this.textareaStatus = true;
    // #endif
    if (this.isLogin && this.toPay == false) {
      this.getCheckShipping();
    } else {
      toLogin();
    }
    this.collage_id = options.collage_id || 0;   // 拼单ID
    if (this.collage_id) {
      this.getCollagePartake();
    }
    // #ifdef MP
    // 桌码
    this.tableId = options.tableId || 0;
    if (this.tableId) {
      this.getCodeData();
    }
    // #endif
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {
    uni.removeStorageSync('form_type_cart');
    let _this = this
    uni.$on("handClick", res => {
      if (res) {
        console.log("onSgow handClick res== ",res)
        _this.system_store = res.address
        _this.storeId = _this.system_store.id
        _this.cartId = res.cartId
        _this.news = res.new
        _this.pinkId = Number(res.pinkId)
        _this.couponId = res.couponId
        _this.getConfirm()    // 获取当前订单详细信息
      }
      // 清除监听
      uni.$off('handClick');
    })
    let current = (dayjs(new Date(Number(new Date().getTime()))).format('HH:mm')).split(':');
    let currentArray = current;
    currentArray.push(0);
    let arrayNew = [];
    [...currentArray,...current].forEach(item=>{
      arrayNew.push(Number(item))
    })
    this.timeranges = arrayNew;
  },
  methods: {
    // #ifdef MP
    // 桌码信息
    getCodeData() {
      getCodeData({
        tableId: this.tableId
      }).then(res => {
        this.codeData = res.data;
      });
    },
    // #endif
    getCollagePartake() {
      getCollagePartake({
        collage_id: this.collage_id
      }).then(res => {
        this.goodsList = res.data;
      });
    },
    OnAreaAddress(address){
      let addr = '';
      if (address.length==4){
        addr = address[0].label+'/'+address[1].label+'/'+address[2].label+'/'+address[3].label;
      }else if (address.length==3){
        addr = address[0].label+'/'+address[1].label+'/'+address[2].label;
      }else if(address.length==2){
        addr = address[0].label+'/'+address[1].label;
      }else{
        addr = address[0].label;
      }
      this.confirm[this.timerangesIndex].value = addr;
      CACHE_CITY[this.timerangesIndex] = address;
    },
    changeRegion(index){
      if(!this.confirm[index].value){
        this.addressInfoArea = [];
      }
      this.timerangesIndex = index;
      this.cityShow = Number(this.confirm[index].valConfig.tabVal) + 1;
      this.display = true;
      if(CACHE_CITY[index]){
        this.addressInfoArea = CACHE_CITY[index];
      }
    },
    // 关闭地址弹窗；
    changeAddressClose: function() {
      this.display = false;
    },
    maskClick(e) {
      console.log(e);
    },
    // 授权关闭
    authColse: function(e) {
      this.isShowAuth = e
    },
    //经纬度定位
    showMaoLocation(e) {
      let self = this;
      // #ifdef H5
      if (self.$wechat.isWeixin()) {
        self.$wechat.seeLocation({
          latitude: Number(e.latitude),
          longitude: Number(e.longitude),
          name: e.name,
          scale: 13,
          address: `${e.address}-${e.detailed_address}`,
        }).then(res => {})
      } else {
        // #endif
        uni.openLocation({
          latitude: Number(e.latitude),
          longitude: Number(e.longitude),
          name: e.name,
          address: `${e.address}-${e.detailed_address}`,
          success: function() {
            Number
          }
        });
        // #ifdef H5
      }
      // #endif
    },
    call(phone) {
      uni.makePhoneCall({
        phoneNumber: phone,
      });
    },
    // 选中配送类型
    deliveryFun(e,item){
      this.deliveryType = e;
      this.$refs.deliveryMethod.module = false;
      if(e==2){
        this.storeId = item.id;
      }else{
        if(e == 3){
          this.storeId = item.id;
          if(this.isDisplay.includes("2") && this.isDisplay.includes("3")){
            this.getaddressInfo();
            this.$nextTick(function() {
              this.$refs.addressWindow.getAddressList();
            })
          }
        }
        this.system_store = item;
      }
      if(e == 1 || e == 3){
        this.addressType(0,e);
      }else{
        this.addressType(1,e);
      }
    },
    // 选择配送方式
    onDelivery() {
      this.$refs.deliveryMethod.module = true
    },
    // 子集调用门店列表接口
    storeFun(index){
      this.getList(1,index);
    },
    // 是否显示快递配送
    getCheckShipping() {
      console.log('getCheckShipping == ')
      let data = {
        cartId: this.cartId,
        new: this.news
      }
      console.log('getCheckShipping data == ',data)
      checkShipping(data).then(res => {             // 订单检测接口
        console.log('getCheckShipping checkShipping res== ',res)
        // 1：快递配送，2：到店自提，3：门店配送
        res.data.type.sort((x,y)=>x - y)//正序
        this.isDisplay = res.data.type;
        if (((this.isDisplay.includes("2") && this.isDisplay.length == 1) || (this.deliveryType == 2 && !this.tableId) || (this.deliveryType == 3 && this.storeId>0 && !this.system_store.name)) && this.isDisplay.length) {
          if((this.deliveryType == 2 || (this.deliveryType == 3 && !this.isDisplay.includes("3"))) && this.isDisplay.includes("2")){
            console.log( "2222222222")
            this.deliveryType = 2
            this.addressType(1,this.deliveryType);
          }
          if((this.deliveryType == 3 || (this.deliveryType == 2 && !this.isDisplay.includes("2"))) && this.isDisplay.includes("3")){
            console.log( "3333333333333")
            this.deliveryType = 3
            this.addressType(0,this.deliveryType);
            this.getaddressInfo();
            this.$nextTick(function() {
              this.$refs.addressWindow.getAddressList();
            })
          }
        } else {
          console.log( "444444444444")
          this.getaddressInfo();
          this.getConfirm();
          this.$nextTick(function() {
            this.$refs.addressWindow.getAddressList();
          })
        }
      }).catch(err => {
        uni.showToast({
          title: err,
          icon: 'none'
        });
      })
    },

    /**
     * 删除图片
     *
     */
    DelPic: function(index, indexs) {
      let that = this,
          pic = this.confirm[index].value;
      that.confirm[index].value.splice(indexs, 1);
      that.$set(that.confirm[index], 'value', that.confirm[index].value);
    },

    /**
     * 上传文件
     *
     */
    uploadpic: function(index) {
      let that = this;
      this.$util.uploadImageOne('upload/image', function(res) {
        that.newImg.push(res.data.url);
        that.$set(that.confirm[index], 'value', that.newImg);
      });
    },
    // 不开发票
    invCancel() {
      this.invChecked = '';
      this.invTitle = '不开发票';
      this.invShow = false;
    },
    // 选择发票
    invChange(id) {
      this.invChecked = id;
      this.invShow = false;
      const result = this.invList.find(item => item.id === id);
      let name = '';
      name += result.header_type === 1 ? '个人' : '企业';
      name += result.type === 1 ? '普通' : '专用';
      name += '发票';
      this.invTitle = name;
    },
    // 关闭发票
    invClose() {
      this.invShow = false;
      this.getInvoiceList()
    },
    getInvoiceList() {
      uni.showLoading({
        title: '正在加载…'
      })
      invoiceList().then(res => {
        uni.hideLoading();
        this.invList = res.data.map(item => {
          item.id = item.id.toString();
          return item;
        });
        const result = this.invList.find(item => item.id == this.invChecked);
        if (result) {
          let name = '';
          name += result.header_type === 1 ? '个人' : '企业';
          name += result.type === 1 ? '普通' : '专用';
          name += '发票';
          this.invTitle = name;
        }
      }).catch(err => {
        uni.showToast({
          title: err,
          icon: 'none'
        });
      });
    },
    /**
     * 开发票
     */
    goInvoice: function() {
      this.getInvoiceList()
      this.invShow = true;
      this.urlQuery =
          `new=${this.news}&cartId=${this.cartId}&pinkId=${this.pinkId}&couponId=${this.couponId}&addressId=${this.addressId}&specialInvoice=${this.special_invoice}&couponTitle=${this.couponTitle}&delivery_type=${this.deliveryType}&store_id=${this.storeId}&store_name=${this.system_store.name}&product_id=${this.product_id}`;
    },
    /**
     * 授权回调事件
     *
     */
    onLoadFun: function() {
      this.getCheckShipping();
      this.isShowAuth = false;
      //调用子页面方法授权后执行获取地址列表
      // this.$scope.selectComponent('#address-window').getAddressList();
    },
    /**
     * 事件回调
     * 就收 payment 组件 gopay()回调
     */
    onChangeFun: function(e) {
      let opt = e;
      let action = opt.action || null;
      let value = opt.value != undefined ? opt.value : null;
      console.log('action=== ',action)
      console.log('this[action]=== ',this[action])
      console.log('this[action]=== ',this[action])
      console.log(' this[action](value)=== ', this[action](value))
      action && this[action] && this[action](value);
    },
    payClose: function() {
      this.pay_close = false;
    },
    goPay() {
      console.log('this.formVerify 111111111')
      this.formVerify();
    },
    payCheck(type) {
      this.payType = type;
      console.log('this.payType ',this.payType )
      this.SubOrder();
    },
    payAddress() {
      uni.navigateTo({
        // /pages/users/user_address/index?id=25&cartId=76179610656654229504&pinkId=0&couponId=0&new=1
        url: '/pages/users/user_address/index?id=' + this.id + '&new=' + this.news + '&cartId=' + this.cartId +
            '&pinkId=' +
            this.pinkId +
            '&couponId=' +
            this.couponId +'&delivery_type='+this.deliveryType+'&addressId='+this.addressId+'&store_id='+this.storeId+'&store_name='+ this.system_store.name+'&product_id='+this.product_id
      })
    },
    /**
     * 获取门店列表数据
     */
    getList: function(fromType,index) {
      let longitude = uni.getStorageSync("user_longitude"); //经度
      let latitude = uni.getStorageSync("user_latitude"); //纬度
      let data = {
        latitude: latitude, //纬度
        longitude: longitude, //经度
        page: 1,
        limit: 100,
        type: this.seckillId>0?1:0,
        product_id: this.product_id,
        is_store: index
      }
      storeListApi(data).then(res => {
        let list = res.data.list.list || [];
        this.$set(this, 'storeList', list);
        this.$set(this, 'storeId', this.storeId !=0?this.storeId:list[0].id);
        list.forEach(item=>{
          if(this.storeId == item.id){
            this.$set(this, 'system_store', item);
          }
        })
        if(fromType !=1 ){
          this.getConfirm();
        }
      }).catch(err => {})
    },
    // 关闭地址弹窗；
    changeClose: function() {
      this.$set(this.address, 'address', false);
    },
    /*
     * 跳转门店列表
     */
    showStoreList: function() {
      let _this = this
      if (this.storeList.length > 0) {
        uni.navigateTo({
          url: `/pages/store/store_list/index?type=1&cartId=${_this.cartId}&new=${_this.news}&pinkId=${_this.pinkId}&couponId=${_this.couponId}`
        })
      }
    },
    changePayType(type) {
      console.log('changePayType',this.payType)
      this.payType = type;
      this.computedPrice()
    },
    changMoney(money){
      console.log('changMoney this.use_money ',this.use_money)
      console.log('changMoney money',money)
        this.use_money=money;
      },
    //计算订单金额
    computedPrice: function() {
      let shippingType = this.shippingType;
      console.log('this.recharcardId== ',this.recharcardId );
      //使用商品券时 不能使用优惠券
      let couponIdChoose = '';
      if(this.recharcardId){
        couponIdChoose: this.recharcardId;  // 商品券ID
      }else {
        couponIdChoose: this.priceGroup.couponPrice == 0 ? 0 : this.couponId;
      }
      postOrderComputed(this.orderKey, {
        addressId: this.addressId,
        useIntegral: this.useIntegral ? 1 : 0,
        couponId: couponIdChoose,
        shipping_type: this.tableId ? 4 : parseInt(shippingType) + 1,
        payType: this.payType,
      }).then(res => {
        console.log('postOrderComputed res=== ',res)
        let result = res.data.result;
        if (result) {
          this.totalPrice = result.pay_price;
          this.integral_price = result.deduction_price;
          this.coupon_price = result.coupon_price;
          this.promotions_detail = result.promotions_detail;
          this.integral = this.useIntegral ? result.SurplusIntegral : this.userInfo.integral;
          this.$set(this.priceGroup, 'storePostage', shippingType == 1 ? 0 : result.pay_postage);
          this.$set(this.priceGroup, 'storePostageDiscount', result.storePostageDiscount);
        }
      }).catch(err => {
      let  cur=this
		  this.$util.Tips({
		    title: err
		  });
		  console.log(cur.preRoute)
		  setTimeout(function() {
		    uni.reLaunch({
		      url: cur.preRoute, // 要重新加载的页面路径
		    });
		  }, 2000);
        return this.$util.Tips({
          title: err
        });
      })
    },
    addressType: function(e,type) {
      let index = e;
      this.shippingType = parseInt(index);
      // this.computedPrice();
      if (index == 1) {
        this.getList(0,type);
      } else {
        this.getConfirm();
      }
    },
    bindPickerChange: function(e) {
      let value = e.detail.value;
      this.shippingType = value;
      this.computedPrice();
    },
    ChangCouponsClone: function() {
      this.$set(this.coupon, 'coupon', false);
    },
    changeTextareaStatus: function() {
      for (let i = 0, len = this.coupon.list.length; i < len; i++) {
        this.coupon.list[i].use_title = '';
        this.coupon.list[i].is_use = 0;
      }
      this.textareaStatus = true;
      this.status = 0;
      this.$set(this.coupon, 'list', this.coupon.list);
    },
    /**
     * 处理点击优惠券后的事件
     *
     */
    ChangCoupons: function(e) {
      // this.usableCoupon = e
      // this.coupon.coupon = false
	  console.log("选择不同的优惠卷",e)
      let index = e,
          list = this.coupon.list,
          couponTitle = this.couponTitle,
          couponId = 0;

      for (let i = 0, len = list.length; i < len; i++) {
        if (i != index) {
          list[i].use_title = '';
          list[i].is_use = 0;
        }
      }
      if (list[index].is_use) {
        //不使用优惠券
        list[index].use_title = '';
        list[index].is_use = 0;
      } else {
        //使用优惠券
        list[index].use_title = '不使用';
        list[index].is_use = 1;
        couponTitle = list[index].coupon_title;
        couponId = list[index].id;
      }
      this.couponTitle = couponTitle;
      this.couponId = couponId;
      this.$set(this.coupon, 'coupon', false);
      this.$set(this.coupon, 'list', list);
      this.getConfirm(1);
	    // this.computedPrice();
    },
    /**
     * 使用积分抵扣
     */
    ChangeIntegral: function() {
      this.useIntegral = !this.useIntegral;
      this.computedPrice();
    },
    /**
     * 选择地址后改变事件
     * @param object e
     */
    OnChangeAddress: function(e) {
      this.textareaStatus = true;
      this.addressId = e;
      this.address.address = false;
      this.getConfirm()
      this.getaddressInfo();
      this.computedPrice();
    },
    bindHideKeyboard: function(e) {

        /*过滤注释信息 mark 字段的 特殊符号和 空格 及 换行符*/
        const pattern = /[`~!@#$^&*()=|{}':;',\\\[\]\.<>\/?~！@#￥……&*（）——|{}【】'；：""'。，、？\s]/g;
        this.mark   =e.detail.value.replace(/[ ]|[\r\n]/g,"").replace(pattern,"");
    },
    // 对象转数组
    objToArr(data) {
      let obj = Object.keys(data);
      let m = obj.map(key => data[key]);
      return m;
    },
    /**
     * 获取当前订单详细信息
     *
     */
    getConfirm: function(numType) {
      console.log('getConfirm 5555')
      let that = this;
      let shippingType = parseInt(this.shippingType) + 1;
      let addressId = 0,storeid;
      if (this.tableId) {
        shippingType = 4;
      }
      if (shippingType == 1) {
        addressId = that.addressId
        if(this.deliveryType == 1){
          storeid = 0
        }else{
          storeid = that.storeId
        }
      } else {
        addressId = ''
        storeid = that.storeId
      }
      console.log('getConfirm orderConfirm that === ',that.cartId)
      console.log('getConfirm orderConfirm that1 === ',that.news)
      console.log('getConfirm orderConfirm that2 === ',that.couponId)
      console.log('getConfirm orderConfirm that3 === ',that.recharcardId)
      orderConfirm(that.cartId, that.news, addressId, shippingType, storeid, that.couponId,that.recharcardId).then(res => {   // 7个参数
        console.log('getConfirm orderConfirm res == ',res)
        if (res.data.upgrade_addr == 1) {
          that.id = res.data.addressInfo.id
          this.isaddress = true
        }
        if (numType != 1) {
          let confirm = this.objToArr(res.data.custom_form);
          confirm.forEach((item, index, arr)=>{
            CACHE_CITY[index] = ''; //清空省市区
            if(item.name == 'texts'){
              if(item.defaultValConfig.value){
                item.value = item.defaultValConfig.value
              }else{
                item.value = ''
              }
            }else if(item.name == 'radios'){
              item.value = item.wordsConfig.list[0].val
            }else if(item.name == 'uploadPicture'){
              item.value = [];
            }else if(item.name == 'dateranges'){
              if(item.valConfig.tabVal==0){
                if(item.valConfig.tabData==0){
                  let obj = dayjs(new Date(Number(new Date().getTime()))).format('YYYY-MM-DD');
                  item.value = [obj,obj]
                }else{
                  let data1 = dayjs(new Date(Number(new Date(item.valConfig.specifyDate[0]).getTime()))).format('YYYY-MM-DD');
                  let data2 = dayjs(new Date(Number(new Date(item.valConfig.specifyDate[1]).getTime()))).format('YYYY-MM-DD');
                  item.value = [data1,data2];
                }
              }else{
                item.value = [];
              }
            }else{
                if(['times','dates','timeranges'].indexOf(item.name) != -1){
                if(item.valConfig.tabVal==0){
                  if(item.valConfig.tabData==0){
                    if(item.name == 'times'){
                      item.value = dayjs(new Date(Number(new Date().getTime()))).format('HH:mm');
                    }else if(item.name == 'dates'){
                      item.value = dayjs(new Date(Number(new Date().getTime()))).format('YYYY-MM-DD');
                    }else{
                      let current = dayjs(new Date(Number(new Date().getTime()))).format('HH:mm');
                      item.value = current+' - '+current;
                    }
                  }else{
                    if(item.name == 'times' || item.name == 'dates'){
                      item.value = item.valConfig.specifyDate;
                    }else{
                      item.value = item.valConfig.specifyDate[0]+' - '+item.valConfig.specifyDate[1];
                    }
                  }
                }else{
                  item.value = '';
                }
              }else{
                item.value = '';
              }
            }
          })
          function sortNumber(a, b) {
            return a.timestamp - b.timestamp;
          }
          confirm.sort(sortNumber);
          that.$set(that, 'confirm', confirm);
        }
        that.$set(that, 'goodsType', res.data.type);
        that.$set(that, 'userInfo', res.data.userInfo);
        that.$set(that, 'integral', res.data.userInfo.integral);
        that.$set(that, 'contacts', res.data.userInfo.real_name);
        that.$set(that, 'contactsTel', res.data.userInfo.record_phone || '');
        that.$set(that, 'integralRatio', res.data.integralRatio);
        that.$set(that, 'offlinePostage', res.data.offlinePostage);
        that.$set(that, 'orderKey', res.data.orderKey);
        that.$set(that, 'valid_count', res.data.valid_count);
        that.$set(that, 'discount_id', res.data.discount_id)
        that.$set(that, 'priceGroup', res.data.priceGroup);
        that.$set(that, 'seckillId', parseInt(res.data.seckill_id));
        that.$set(that, 'BargainId', parseInt(res.data.bargain_id));
        that.$set(that, 'combinationId', parseInt(res.data.combination_id));
        that.$set(that, 'discountId', parseInt(res.data.discount_id));
        that.$set(that, 'invoice_func', res.data.invoice_func);
        that.$set(that, 'special_invoice', res.data.special_invoice);
        that.$set(that, 'integral_ratio_status', res.data.integral_ratio_status);
        that.$set(that, 'store_self_mention', res.data.store_self_mention);
        that.$set(that, 'store_func_status', res.data.store_func_status);
        that.giveData.give_integral = res.data.give_integral;
        that.giveData.give_coupon = res.data.give_coupon;
        let cartInfo = res.data.cartInfo;
        let cartObj = [],
            giftObj = [];
        cartInfo.forEach(item => {
          if (item.is_gift == 1) {
            giftObj.push(item)
          } else {
            cartObj.push(item)
          }
        })
        that.$set(that, 'cartInfo', cartObj);
        that.$set(that, 'giveCartInfo', giftObj);
        let giveType = -1;
        giftObj.forEach(item => {
          if (item.product_type == 0 || item.product_type == 4) {
            return giveType = 0
          }
        })
        that.$set(that, 'product_type', (res.data.product_type == 0 || giveType == 0 || res.data.product_type == 4) ? 0 : 1);
        console.log("是否打开通联支付",res.data.allinpay_status)
        //组合支付是否开启
        if(res.data.combination_status == 0 ){
          that.combination_status = false;      // 是否开启（0=>关闭\n1=>开启）
        }
        //通联支付是否打开
         if(!res.data.allinpay_status){
           // that.cartArr.pop()
           that.cartArr[4].payStatus = 0; // 此处涉及到优惠券的抵扣显示
         }
        //微信支付是否开启
        that.cartArr[1].payStatus = res.data.pay_weixin_open || 0
        //支付宝是否开启
        that.cartArr[2].payStatus = res.data.ali_pay_status || 0;
        //#ifdef MP
        that.cartArr[2].payStatus = 0;    // 支付宝支付关闭
        that.cartArr[4].payStatus = 0;    // 通联支付关闭
        //#endif
        //余额支付是否开启
        // that.cartArr[0].title = '可用余额:' + res.data.userInfo.now_money;
        that.cartArr[0].number = res.data.userInfo.now_money;
        that.cartArr[0].payStatus = res.data.yue_pay_status == 1 ? res.data.yue_pay_status : 0
        // 当商品设置禁止使用余额支付时，屏蔽余额支付选项显示    GXW20230523添加
        let payTypeOnlyArr = this.$data.cartInfo.map(item => item.productInfo.pay_type_only);
        if (payTypeOnlyArr.includes("weixin")) {
          that.cartArr[0].payStatus = 0;
        } else {
          that.cartArr[0].payStatus = res.data.yue_pay_status === 1 ? res.data.yue_pay_status : 0;
          that.cartArr[0].number = res.data.userInfo.now_money;
        }
        if (payTypeOnlyArr.includes("yue")){
          that.cartArr[1].payStatus = 0;
          that.$set(that, 'cartArr', that.cartArr);
        }

        if (res.data.offline_pay_status == 2) {
          that.cartArr[3].payStatus = 0
        } else {
          that.cartArr[3].payStatus = 1
        }
        // that.$set(that, 'cartArr', that.cartArr);
        that.$set(that, 'ChangePrice', that.totalPrice);
        that.getBargainId();
        //使用商品券时，不检测优惠券列表
        if (!that.recharcardId){
          that.getCouponList();
        }
        that.computedPrice();
        if (this.addressId || this.couponId) {    //地址或优惠券变化后重新计算
         // this.computedPrice();
        } else {
          that.$set(that, 'totalPrice', that.$util.$h.Add(parseFloat(res.data.priceGroup.totalPrice),
              parseFloat(res.data
                  .priceGroup.storePostage)));
        }
      }).catch(err => {
        return this.$util.Tips({
          title: err
        });
      });
    },
    /*
     * 提取砍价和拼团id
     */
    getBargainId: function() {
      let that = this;
      // let cartINfo = that.cartInfo;
      // let BargainId = 0;
      // let combinationId = 0;
      // let discountId = 0;
      // cartINfo.forEach(function(value, index, cartINfo) {
      // 	BargainId = cartINfo[index].bargain_id,
      // 		combinationId = cartINfo[index].combination_id,
      // 		discountId = cartINfo[index].discount_id
      // })
      // that.$set(that, 'BargainId', parseInt(BargainId));
      // that.$set(that, 'combinationId', parseInt(combinationId));
      // that.$set(that, 'discountId', parseInt(discountId));
      if (that.cartArr.length == 3 && (that.BargainId || that.combinationId || that.seckillId || that.discountId)) {
        that.cartArr[0].payStatus = 0;
        that.$set(that, 'cartArr', that.cartArr);
      }
      //砍价和拼团 增加限制微信支付功能
      let payTypeOnlyArr = that.cartInfo.map(item => item.productInfo.pay_type_only);
      console.log('getBargainId 的 payTypeOnlyArr =  ', payTypeOnlyArr  )
      if (payTypeOnlyArr.includes("weixin")) {
        that.cartArr[0].payStatus = 0;
        that.$set(that, 'cartArr', that.cartArr);
      }
      if (payTypeOnlyArr.includes("yue")){
        that.cartArr[1].payStatus = 0;
        that.$set(that, 'cartArr', that.cartArr);
      }

    },
    /**
     * 获取当前金额可用优惠券
     *
     */
    async getCouponList() {
      let that = this;
      let data = {
        cartId: this.cartId,
        'new': this.news,
        shipping_type: that.$util.$h.Add(that.shippingType, 1),
        store_id: that.system_store ? that.system_store.id : 0
      }
      try {
        const res = await getCouponsOrderPrice(this.totalPrice, data); // 请求获取当前金额可以使用的优惠券接口
        that.$set(that.coupon, 'list', res.data);
        that.openType = 1;
        // 在回调函数中判断是否有可用优惠券，如果 couponId 等于 0，则输出 coupon 对象到控制台
        if (that.couponId == 0 && that.coupon.list.length > 0) {
          that.couponTitle = '您有优惠券未使用，请选择使用';
          that.choiceColor = 'red';            // 设置未选择优惠券默认的样式类
          that.choiceweight = 'bolder';         // 设置未选择优惠券默认的样式类
        }else {
          that.choiceColor = '#999';            // 设置未选择优惠券默认的样式类
          that.choiceweight = 'normal';         // 设置未选择优惠券默认的样式类
        }
      }catch (error){
        console.error(error);
      }
    },
    // async getCouponList() {
    //   let that = this;
    //   let data = {
    //     cartId: this.cartId,
    //     'new': this.news,
    //     shipping_type: that.util.h.Add(that.shippingType, 1),
    //     store_id: that.system_store ? that.system_store.id : 0
    //   }
    //   /* getCouponsOrderPrice(this.totalPrice, data).then(res => {
    //      that.$set(that.coupon, 'list', res.data);
    //      that.openType = 1;
    //    });*/
    //
    //
    // },
    /*
     * 获取默认收货地址或者获取某条地址信息
     */
    getaddressInfo: function() {
      let that = this;
      if (that.addressId) {
        getAddressDetail(that.addressId).then(res => {
          res.data.is_default = parseInt(res.data.is_default);
          that.addressInfo = res.data || {};
          that.addressId = res.data.id || 0;
          that.address.addressId = res.data.id || 0;
        })
      } else {
        getAddressDefault().then(res => {
          res.data.is_default = parseInt(res.data.is_default);
          that.addressInfo = res.data || {};
          that.addressId = res.data.id || 0;
          that.address.addressId = res.data.id || 0;
        })
      }
    },
    payItem: function(e) {
      let that = this;
      let active = e;
      that.active = active;
      that.animated = true;
      that.payType = that.cartArr[active].value;
      that.computedPrice();
      setTimeout(function() {
        that.car();
      }, 500);
    },
    couponTap: function() {
      this.coupon.coupon = true;
      this.coupon.list.forEach((item, index) => {
        if (item.id == this.couponId) {
          item.is_use = 1
        } else {
          item.is_use = 0
        }
      })
      this.$set(this.coupon, 'list', this.coupon.list);
    },
    car: function() {
      let that = this;
      that.animated = false;
    },
    onAddress: function(name) {
      let that = this;
      if(name){
        that.textareaStatus = false;
        that.address.address = true;
        that.pagesUrl = '/pages/users/user_address_list/index?news=' + this.news + '&cartId=' + this.cartId +
            '&pinkId=' +
            this.pinkId +
            '&couponId=' +
            this.couponId +'&delivery_type='+this.deliveryType+'&addressId='+this.addressId+'&store_id='+this.storeId+'&store_name='+ this.system_store.name+'&product_id='+this.product_id
      }else{
        uni.navigateTo({
          url: '/pages/users/user_address/index?new=' + this.news + '&cartId=' + this.cartId +
              '&pinkId=' +
              this.pinkId +
              '&couponId=' +
              this.couponId +'&delivery_type='+this.deliveryType+'&addressId='+this.addressId+'&store_id='+this.storeId+'&store_name='+ this.system_store.name+'&product_id='+this.product_id
        })
      }
    },
    payment: function(data) {
      let that = this;
      console.log('支付创建订单方法',data)
      orderCreate(that.orderKey, data).then(res => {
        console.log('create order res ==== ',res)
        let status = res.data.status,
            orderId = res.data.result.orderId,
            jsConfig = res.data.result.jsConfig,
            goPages = '/pages/goods/order_pay_status/index?order_id=' + orderId + '&msg=' + res.msg +
                '&type=3' + '&totalPrice=' + this.totalPrice
			//如果是通联支付跳转页面
			// #ifdef APP-PLUS
			if (status == 'ALLINPAY_PAY') {
				plus.share.getServices(function(res) {
          console.log('tonglian res ==== ',res)
					var sweixin = null;
					for (var i = 0; i < res.length; i++) {
						var t = res[i];
						console.log(t, 555);
						if (t.id == "weixin") {
							sweixin = t;
						}
					}
					if (sweixin) {
						sweixin.launchMiniProgram({
							// id: "gh_7b1957f6f62d",            //  农购优选
							id: "gh_010ed55d9ce7",                //  农购网
							path: "pages/goods/PayDetail/index?uni=" + orderId,
							type: 0
						});
					}
          console.log('sweixin ==== ',sweixin)
				});
				setTimeout(res => {
				  uni.redirectTo({
				    url: "/pages/goods/order_list/index"
				  })
				}, 2000);
				return false
				// if (status == 'ALLINPAY_PAY') {
				// 			return	uni.navigateTo({ url: '/pages/goods/PayDetail/index?uni=' + orderId})
				// }
			};
			// #endif
        switch (status) {
          case 'ORDER_EXIST':
          case 'EXTEND_ORDER':
          case 'PAY_ERROR':
            uni.hideLoading();
            return that.$util.Tips({
              title: res.msg
            }, {
              tab: 5,
              url: goPages
            });
            break;
          case 'SUCCESS':
            uni.hideLoading();
            if (that.BargainId || that.combinationId || that.pinkId || that.seckillId || that.discountId)
              return that.$util.Tips({
                title: res.msg,
                icon: 'success'
              }, {
                tab: 4,
                url: goPages
              });
            return that.$util.Tips({
              title: res.msg,
              icon: 'success'
            }, {
              tab: 5,
              url: goPages
            });
            break;
          case 'WECHAT_PAY':
            that.toPay = true;
            // #ifdef MP
            /* that.toPay = true; */
            let mp_pay_name=''
            if(uni.requestOrderPayment){
              mp_pay_name='requestOrderPayment'
            }else{
              mp_pay_name='requestPayment'
            }
            uni[mp_pay_name]({
              timeStamp: jsConfig.timestamp,
              nonceStr: jsConfig.nonceStr,
              package: jsConfig.package,
              signType: jsConfig.signType,
              paySign: jsConfig.paySign,
              success: function(res) {
                uni.hideLoading();
                if (that.BargainId || that.combinationId || that.pinkId || that
                    .seckillId || that.discountId)
                  return that.$util.Tips({
                    title: '支付成功',
                    icon: 'success'
                  }, {
                    tab: 4,
                    url: goPages
                  });
                return that.$util.Tips({
                  title: '支付成功',
                  icon: 'success'
                }, {
                  tab: 5,
                  url: goPages
                });
              },
              fail: function(e) {
                uni.hideLoading();
                return that.$util.Tips({
                  title: '取消支付'
                }, {
                  tab: 5,
                  url: goPages + '&status=2'
                });
              },
              complete: function(e) {
                uni.hideLoading();
                //关闭当前页面跳转至订单状态
                if (res.errMsg == 'requestPayment:cancel') return that.$util
                    .Tips({
                      title: '取消支付'
                    }, {
                      tab: 5,
                      url: goPages + '&status=2'
                    });
              },
            })
            // #endif
            // #ifdef H5
            this.$wechat.pay(res.data.result.jsConfig).then(res => {
              return that.$util.Tips({
                title: '支付成功',
                icon: 'success'
              }, {
                tab: 5,
                url: goPages
              });
            }).catch(res => {
              if (!this.$wechat.isWeixin()) {
                uni.redirectTo({
                  url: goPages +
                      '&msg=支付失败&status=2'
                })
              }
              if (res.errMsg == 'chooseWXPay:cancel') return that.$util.Tips({
                title: '取消支付'
              }, {
                tab: 5,
                url: goPages + '&status=2'
              });
            })
            // #endif
            // #ifdef APP-PLUS
            uni.requestPayment({
              provider: 'wxpay',
              orderInfo: jsConfig,
              success: (e) => {
                let url = goPages;
                uni.showToast({
                  title: "支付成功"
                })
                setTimeout(res => {
                  uni.redirectTo({
                    url: url
                  })
                }, 2000)
              },
              fail: (e) => {
                let url = '/pages/goods/order_pay_status/index?order_id=' + orderId +
                    '&msg=支付失败';
                uni.showModal({
                  content: "支付失败",
                  showCancel: false,
                  success: function(res) {
                    if (res.confirm) {
                      uni.redirectTo({
                        url: url
                      })
                    } else if (res.cancel) {
                      console.log('用户点击取消');
                    }
                  }
                })
              },
              complete: () => {
                uni.hideLoading();
              },
            });
            // #endif
            break;
			    case 'ALLINPAY_PAY':
			   that.toPay = true;
			  // #ifdef MP
			  let mp_pay_name1=''
			  if(uni.requestOrderPayment){
			    mp_pay_name1='requestOrderPayment'
			  }else{
			    mp_pay_name1='requestPayment'
			  }
			  uni[mp_pay_name1]({
			    timeStamp: jsConfig.timeStamp,
			    nonceStr: jsConfig.nonceStr,
			    package: jsConfig.package,
			    signType: jsConfig.signType,
			    paySign: jsConfig.paySign,
			    success: function(res) {
			      uni.hideLoading();
			      if (that.BargainId || that.combinationId || that.pinkId || that
			          .seckillId || that.discountId)
			        return that.$util.Tips({
			          title: '支付成功',
			          icon: 'success'
			        }, {
			          tab: 4,
			          url: goPages
			        });
			      return that.$util.Tips({
			        title: '支付成功',
			        icon: 'success'
			      }, {
			        tab: 5,
			        url: goPages
			      });
			    },
			    fail: function(e) {
			      uni.hideLoading();
			      return that.$util.Tips({
			        title: '取消支付'
			      }, {
			        tab: 5,
			        url: goPages + '&status=2'
			      });
			    },
			    complete: function(e) {
			      uni.hideLoading();
			      //关闭当前页面跳转至订单状态
			      if (res.errMsg == 'requestPayment:cancel') return that.$util
			          .Tips({
			            title: '取消支付'
			          }, {
			            tab: 5,
			            url: goPages + '&status=2'
			          });
			    },
			  })
			  // #endif
			  // #ifdef H5
			  this.$wechat.pay(res.data.result.jsConfig).then(res => {
			    return that.$util.Tips({
			      title: '支付成功',
			      icon: 'success'
			    }, {
			      tab: 5,
			      url: goPages
			    });
			  }).catch(res => {
			    if (!this.$wechat.isWeixin()) {
			      uni.redirectTo({
			        url: goPages +
			            '&msg=支付失败&status=2'
			      })
			    }
			    if (res.errMsg == 'chooseWXPay:cancel') return that.$util.Tips({
			      title: '取消支付'
			    }, {
			      tab: 5,
			      url: goPages + '&status=2'
			    });
			  })
			  // #endif
			  // #ifdef APP-PLUS
			  uni.requestPayment({
			    provider: 'wxpay',
			    orderInfo: jsConfig,
			    success: (e) => {
			      let url = goPages;
			      uni.showToast({
			        title: "支付成功"
			      })
			      setTimeout(res => {
			        uni.redirectTo({
			          url: url
			        })
			      }, 2000)
			    },
			    fail: (e) => {
			      let url = '/pages/goods/order_pay_status/index?order_id=' + orderId +
			          '&msg=支付失败';
			      uni.showModal({
			        content: "支付失败",
			        showCancel: false,
			        success: function(res) {
			          if (res.confirm) {
			            uni.redirectTo({
			              url: url
			            })
			          } else if (res.cancel) {
			            console.log('用户点击取消');
			          }
			        }
			      })
			    },
			    complete: () => {
			      uni.hideLoading();
			    },
			  });
            // #endif
            break;
          case 'PAY_DEFICIENCY':
            uni.hideLoading();
            //余额不足
            return that.$util.Tips({
              title: res.msg
            }, {
              tab: 5,
              url: goPages + '&status=1'
            });
            break;
          case "WECHAT_H5_PAY":
            uni.hideLoading();
            that.$util.Tips({
              title: '订单创建成功!'
            }, {
              tab: 4,
              url: goPages + '&status=0'
            });
            setTimeout(() => {
              location.href = res.data.result.jsConfig.mweb_url;
            }, 2000);
            break;

          case 'ALIPAY_PAY':
            //#ifdef H5
            if (this.from === 'weixin') {
              uni.redirectTo({
                url: `/pages/users/alipay_invoke/index?id=${orderId}&pay_key=${res.data.result.pay_key}`
              });
            } else {
              uni.hideLoading();
              that.formContent = res.data.result.jsConfig;
              that.$nextTick(() => {
                document.getElementById('alipaysubmit').submit();
              })
            }
            //#endif
            // #ifdef MP
            uni.navigateTo({
              url: `/pages/users/alipay_invoke/index?id=${orderId}&link=${jsConfig.qrCode}`
            });
            // #endif
            // #ifdef APP-PLUS
            uni.requestPayment({
              provider: 'alipay',
              orderInfo: jsConfig,
              success: (e) => {
                uni.showToast({
                  title: "支付成功"
                })
                let url = '/pages/goods/order_pay_status/index?order_id=' + orderId +
                    '&msg=支付成功';
                setTimeout(res => {
                  uni.redirectTo({
                    url: url
                  })
                }, 2000)

              },
              fail: (e) => {
                let url = '/pages/goods/order_pay_status/index?order_id=' + orderId +
                    '&msg=支付失败';
                uni.showModal({
                  content: "支付失败",
                  showCancel: false,
                  success: function(res) {
                    if (res.confirm) {
                      uni.redirectTo({
                        url: url
                      })
                    } else if (res.cancel) {
                      console.log('用户点击取消');
                    }
                  }
                })
              },
              complete: () => {
                uni.hideLoading();
              },
            });
            // #endif
            break;
        }
      }).catch(err => {
        uni.hideLoading();
        return that.$util.Tips({
          title: err
        });
      });
    },
    clickTextArea() {
      this.$refs.textarea.focus()
    },
    bindDateChange: function(e, index) {
      this.confirm[index].value = e.target.value
    },
    bindTimeChange: function(e, index) {
      this.confirm[index].value = e.target.value
    },
    bindSelectChange: function(e, index, item) {
      this.confirm[index].value = item.wordsConfig.list[e.detail.value].val
    },
    getTimeranges(index){
      this.isShow = true
      this.timerangesIndex = index
    },
    confrim(e){
      console.log('time==',e)
      this.isShow = false;
      this.confirm[this.timerangesIndex].value = e.time;
      let arrayNew = [];
      e.val.forEach(item=>{
        arrayNew.push(Number(item))
      })
      this.timeranges = arrayNew;
    },
    cancels(){
      this.isShow = false;
    },
    // 单选
    radioChange(e, index, item){
      this.confirm[index].value = item.wordsConfig.list[e.detail.value].val
    },
    // 多选
    checkboxChange(e, index, item){
      let obj = e.detail.value;
      let val = '';
      item.wordsConfig.list.forEach((j,jindex)=>{
        obj.forEach(x=>{
          if(jindex == x){
            val = val +(val?',':'') + j.val;
          }
        })
      })
      this.confirm[index].value = val
    },
    /*提交检测 提交字段内容*/
    formVerify(){
      let that = this;
      if (!that.addressId && !that.shippingType && !that.product_type && !that.tableId) return that.$util.Tips({
        title: '请选择收货地址'
      });
      if (that.shippingType == 1) {
        if (that.contacts == "" || that.contactsTel == "") {
          return that.$util.Tips({
            title: '请填写联系人或联系人电话'
          });
        }
        if (!/^1(3|4|5|7|8|9|6)\d{9}$/.test(that.contactsTel)) {
          return that.$util.Tips({
            title: '请填写正确的手机号'
          });
        }
        if (!/^[\u4e00-\u9fa5\w]{2,16}$/.test(that.contacts)) {
          return that.$util.Tips({
            title: '请填写您的真实姓名'
          });
        }
        if (that.storeList.length == 0) return that.$util.Tips({
          title: '暂无门店,请选择其他方式'
        });
      }
      for (var i = 0; i < that.confirm.length; i++) {
        let data = that.confirm[i]
        if (['radios'].indexOf(data.name) == -1 && (data.titleShow.val || (['uploadPicture','dateranges'].indexOf(data.name) == -1 && data.value && data.value.trim()))) {
          if ((data.name === 'texts' && data.valConfig.tabVal == 0) || ['dates','times','selects','citys','checkboxs'].indexOf(data.name) != -1) {
            if (!data.value || (data.value && !data.value.trim())) {
              return that.$util.Tips({
                title: `请填写${data.titleConfig.value}`
              });
            }
          }
          if(data.name === 'timeranges'){
            if(!data.value){
              return that.$util.Tips({
                title: `请选择${data.titleConfig.value}`
              });
            }
          }
          if (data.name === 'dateranges') {
            if (!data.value.length) {
              return that.$util.Tips({
                title: `请选择${data.titleConfig.value}`
              });
            }
          }
          if (data.name === 'texts' && data.valConfig.tabVal == 4) {
            if (data.value <= 0) {
              return that.$util.Tips({
                title: `请填写大于0的${data.titleConfig.value}`
              });
            }
          }
          if (data.name === 'texts' && data.valConfig.tabVal == 3) {
            if (!/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(data.value)) {
              return that.$util.Tips({
                title: `请填写正确的${data.titleConfig.value}`
              });
            }
          }
          if (data.name === 'texts' && data.valConfig.tabVal == 1) {
            if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(data.value)) {
              return that.$util.Tips({
                title: `请填写正确的${data.titleConfig.value}`
              });
            }
          }

          if (data.name === 'texts' && data.valConfig.tabVal == 2) {
            if (!
                /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/i
                    .test(data.value)) {
              return that.$util.Tips({
                title: `请填写正确的${data.titleConfig.value}`
              });
            }
          }

          if (data.name === 'uploadPicture') {
            if (!data.value.length) {
              return that.$util.Tips({
                title: `请上传${data.titleConfig.value}`
              });
            }
          }
        }
      }
      that.pay_close = true;

      if (that.cartArr['0']['number'] > 0){
        that.$refs.payment.openDefaultSwitch(true);   // 调用组合支付默认开启支付方法
        that.$refs.payment.payTypeOnlyOne(that.cartArr['0']['number'] ,'weixin',1);    // 调用组合支付默认开启支付方法  (number, paytype, index)
      } else {
        that.$refs.payment.closeswitch();
      }

    },
    SubOrder: function(e) {
      let that = this,
          data = {};
      if (!that.payType) return that.$util.Tips({
        title: '请选择支付方式'
      });
      data = {
		    use_money:that.use_money,
        collate_code_id: that.collage_id || that.tableId,
        custom_form: that.confirm,
        real_name: that.contacts,
        phone: that.contactsTel,
        addressId: that.addressId,
        formId: '',
        couponId: that.priceGroup.couponPrice == 0 ? 0 : that.couponId,
        payType: that.payType,
        useIntegral: that.useIntegral,
        bargainId: that.BargainId,
        combinationId: that.combinationId,
        discountId: that.discountId,
        pinkId: that.pinkId,
        seckill_id: that.seckillId,
        mark: that.mark,
        store_id: that.deliveryType==1? 0 : that.system_store.id||0,
        'from': that.from,
        shipping_type: that.tableId ? 4 : that.$util.$h.Add(that.shippingType, 1),
        'new': that.news,
        'invoice_id': that.invChecked,
        // #ifdef H5
        quitUrl: location.protocol + '//' + location.hostname +
            '/pages/goods/order_pay_status/index?' +
            '&type=3' + '&totalPrice=' + this.totalPrice
        // #endif
        // #ifdef APP-PLUS
        quitUrl: '/pages/goods/order_details/index?order_id=' + that.order_id
        // #endif
      };
      console.log('支付封装data',data)
      if (data.payType == 'yue' && parseFloat(that.userInfo.now_money) < parseFloat(that.totalPrice))
        return that.$util.Tips({
          title: '余额不足！'
        });
      uni.showLoading({
        title: '订单支付中'
      });
      // #ifdef MP
      openPaySubscribe().then(() => {
        that.payment(data);
      });
      // #endif
      // #ifndef MP
      that.payment(data);
      // #endif
    }
  }
}
</script>

<style lang="scss" scoped>
/deep/.uni-date-x--border{
  border: 0;
}
/deep/.uni-icons{
  font-size: 0 !important;
}
/deep/.uni-date-x{
  color: #999;
  font-size: 15px;
}
/deep/.uni-date__x-input{
  font-size: 15px;
}
.height-add {
  height: calc(120rpx+ constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
  height: calc(120rpx + env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
}

/deep/uni-checkbox[disabled] .uni-checkbox-input {
  background-color: #eee;
}

.confirmImg {
  width: 100%;
}

/deep/.orderGoods {
  margin-top: 20rpx;
  border-radius: 14rpx;
}

.confirmImg .upload {
  padding-bottom: 36rpx;
}

.confirmImg .upload .pictrue {
  margin: 22rpx 23rpx 0 0;
  width: 146rpx;
  height: 146rpx;
  position: relative;
  font-size: 24rpx;
  color: #bbb;
}

.confirmImg .upload .pictrue:nth-of-type(4n) {
  margin-right: 0;
}

.confirmImg .upload .pictrue image {
  width: 100%;
  height: 100%;
  border-radius: 8rpx;
}

.confirmImg .upload .pictrue .icon-guanbi1 {
  position: absolute;
  font-size: 45rpx;
  top: -10rpx;
  right: -10rpx;
}

.confirmImg .upload .pictrue .close{
  position: absolute;
  width: 26rpx;
  height: 26rpx;
  border-radius: 0 8rpx 0 8rpx;
  background-color: rgba(0, 0, 0, 0.6);
  top: 0;
  right: 0;
}

.confirmImg .upload .pictrue .close .iconfont{
  font-size: 24rpx;
}

.confirmImg .upload .pictrue .icon-icon25201 {
  color: #bfbfbf;
  font-size: 50rpx;
}

.confirmImg .upload .pictrue:nth-last-child(1) {
  border: 1rpx solid #ddd;
  box-sizing: border-box;
}

.alipaysubmit {
  display: none;
}

.order-submission .line {
  width: 100%;
  height: 4rpx;
}

.order-submission .line image {
  width: 100%;
  height: 100%;
  display: block;
}

.order-submission .headerCon {
  background-color: #fff;
  box-sizing: border-box;

  .icon-s-bianji {
    width: 44rpx;
    height: 44rpx;
    background: #F5F5F5;
    border-radius: 50%;
    text-align: center;
    line-height: 44rpx;
    font-size: 17rpx;
    color: #666;
  }

  .add-title {
    height: 72rpx;
    padding: 0 26rpx;
    border-bottom: 1px solid #eee;
    .icon {
      height: 32rpx;
      background: #1890FF;
      border-radius: 4rpx;
      font-size: 20rpx;
      font-weight: 400;
      color: #FFFFFF;
      text-align: center;
      line-height: 32rpx;
      padding: 0 6rpx;
      &.orange{
        background: #FE960F;
      }
      &.red{
        background: #E93323;
      }
    }

    .add-text {
      margin-left: 14rpx;
      width: 360rpx;
    }

    .text {
      font-size: 24rpx;
      font-weight: 400;
      color: #999999;

      .icon-jiantou {
        display: inline-block;
        font-size: 20rpx;
      }
    }
  }
}
.order-submission .address{
  padding: 0 26rpx;
  height: 130rpx;
  .icon{
    .iconfont{
      width: 44rpx;
      height: 44rpx;
      background: var(--view-minorColorT);
      font-size: 20rpx;
      border-radius: 50%;
      text-align: center;
      line-height: 44rpx;
      color: var(--view-theme);
      margin-left: 26rpx;
    }
  }
}
.order-submission .address .addressCon {
  width: 502rpx;
  font-size: 26rpx;
  color: #666;
}

.order-submission .address .addressCon .name {
  font-size: 30rpx;
  color: #282828;
  font-weight: bold;
  margin-bottom: 10rpx;
  .nameCon{
    max-width: 244rpx;
    &.on{
      max-width: unset;
    }
  }
}

.order-submission .address .addressCon .name .phone {
  margin-left: 50rpx;
}

.order-submission .address .addressCon .default {
  margin-right: 12rpx;
}

.order-submission .address .addressCon .setaddress {
  color: #333;
  font-size: 28rpx;
}

.order-submission .allAddress {
  width: 100%;
  background: linear-gradient(to bottom, var(--view-theme) 0%, #f5f5f5 100%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding-top: 24rpx;

}

.order-submission .allAddress .nav {
  width: 710rpx;

  // margin: 0 auto;
}

.order-submission .allAddress .nav .item {
  width: 355rpx;
}

.order-submission .allAddress .nav .item.on {
  position: relative;
  width: 250rpx;
}

.order-submission .allAddress .nav .item.on::before {
  position: absolute;
  bottom: 0;
  content: "快递配送";
  font-size: 28rpx;
  display: block;
  height: 0;
  width: 336rpx;
  border-width: 0 20rpx 80rpx 0;
  border-style: none solid solid;
  border-color: transparent transparent #fff;
  z-index: 2;
  border-radius: 7rpx 30rpx 0 0;
  text-align: center;
  // line-height: 80rpx;
}

.header-title {

  font-size: 36rpx;
  font-weight: 600;
  color: #FFFFFF;
}

.order-submission .allAddress .nav .item:nth-of-type(2).on::before {
  content: "到店自提";
  border-width: 0 0 80rpx 20rpx;
  border-radius: 30rpx 7rpx 0 0;
}

.order-submission .allAddress .nav .item.on2 {
  position: relative;
}

.order-submission .allAddress .nav .item.on2::before {
  position: absolute;
  bottom: 0;
  content: "到店自提";
  font-size: 28rpx;
  display: block;
  height: 0;
  width: 400rpx;
  border-width: 0 0 60rpx 60rpx;
  border-style: none solid solid;
  border-color: transparent transparent rgba(255, 255, 255, 0.6);
  border-radius: 40rpx 6rpx 0 0;
  text-align: center;
  // line-height: 60rpx;
}

.order-submission .allAddress .nav .item:nth-of-type(1).on2::before {
  content: "快递配送";
  border-width: 0 60rpx 60rpx 0;
  border-radius: 6rpx 40rpx 0 0;
}
.order-submission .allAddress .headerCon{
  width: 710rpx;
  margin: 0 auto;
  border-radius: 14rpx;
  background-color: #fff;

}

.order-submission .allAddress .line {
  width: 710rpx;
  margin: 0 auto;
}

.order-submission .wrapper .item .discount .placeholder {
  color: #ccc;
}

.placeholder-textarea {
  position: relative;

  .placeholder {
    position: absolute;
    color: #ccc;
    top: 26rpx;
    left: 30rpx;
  }
}

.order-submission .wrapper {
  background-color: #fff;

  width: 710rpx;
  border-radius: 14rpx;
  margin: 0 auto;
  margin-top: 14rpx;
}

.order-submission .wrapper .item .name {
  position: relative;
  width: 190rpx;
}

.order-submission .wrapper .item .asterisk {
  position: absolute;
  color: red;
  left: -15rpx
}

.order-submission .wrapper .item {
  padding: 27rpx 30rpx;
  font-size: 30rpx;
  color: #282828;
  border-bottom: 1px solid #f0f0f0;
}

.order-submission .wrapper .item.on{
  padding: 17rpx 14rpx 17rpx 30rpx;
  align-items: baseline;
}

.order-submission .wrapper .item.on3{
  align-items: baseline;
}

.order-submission .wrapper .item.on2{
  padding: 17rpx 30rpx;
}

.order-submission .wrapper .item .discount {
  font-size: 30rpx;
  color: #999;
}

.order-submission .wrapper .item.on .discount,
.order-submission .wrapper .item.on3 .discount{
  width: 460rpx;
  text-align: right;
}

.order-submission .wrapper .item.on3 .discount .city{
  width: 400rpx;
}

.order-submission .wrapper .item .discount input {
  text-align: right;
  width: 450rpx;
}

.order-submission .wrapper .item .discount .iconfont {
  color: #515151;
  font-size: 30rpx;
  margin-left: 15rpx;
}

.order-submission .wrapper .item .discount .num {
  font-size: 32rpx;
  margin-right: 20rpx;
}

.order-submission .wrapper .item .discount .radio{
  margin: 0 22rpx 0 22rpx;
  padding: 10rpx 0;
}

.order-submission .wrapper .item .discount .radio /deep/uni-checkbox .uni-checkbox-input{
  border-radius: 0  }

.order-submission .wrapper .item .shipping {
  font-size: 30rpx;
  color: #999;
  position: relative;
  padding-right: 58rpx;
}

.order-submission .wrapper .item .shipping .iconfont {
  font-size: 35rpx;
  color: #707070;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  margin-left: 30rpx;
}

.order-submission .wrapper .item textarea {
  background-color: #f9f9f9;
  width: 650rpx;
  height: 140rpx;
  border-radius: 3rpx;
  margin-top: 30rpx;
  padding: 25rpx 28rpx;
  box-sizing: border-box;
}

.order-submission .wrapper .item .placeholder {
  color: #ccc;
}

.order-submission .wrapper .item .list {
  margin-top: 35rpx;
}

.order-submission .wrapper .item .list .payItem {
  border: 1px solid #eee;
  border-radius: 6rpx;
  height: 86rpx;
  width: 100%;
  box-sizing: border-box;
  margin-top: 20rpx;
  font-size: 28rpx;
  color: #282828;
}

.order-submission .wrapper .item .list .payItem.on {
  border-color: #fc5445;
  color: #e93323;
}

.order-submission .wrapper .item .list .payItem .name {
  width: 50%;
  text-align: center;
  border-right: 1px solid #eee;
  padding-left: 80rpx;
}

.order-submission .wrapper .item .list .payItem .name .iconfont {
  width: 44rpx;
  height: 44rpx;
  border-radius: 50%;
  text-align: center;
  line-height: 44rpx;
  background-color: #fe960f;
  color: #fff;
  font-size: 30rpx;
  margin-right: 15rpx;
}

.order-submission .wrapper .item .list .payItem .name .iconfont.icon-weixin2 {
  background-color: #41b035;
}

.order-submission .wrapper .item .list .payItem .name .iconfont.icon-zhifubao {
  background-color: #1677FF;
}

.order-submission .wrapper .item .list .payItem .tip {
  width: 49%;
  text-align: center;
  font-size: 26rpx;
  color: #aaa;
}

.order-submission .moneyList {

  background-color: #fff;
  padding: 30rpx;
  width: 710rpx;
  border-radius: 14rpx;
  margin: 0 auto;
  margin-top: 14rpx;

}

.order-submission .moneyList .item {
  font-size: 28rpx;
  color: #282828;
}

.order-submission .moneyList .item~.item {
  margin-top: 20rpx;
}

.order-submission .moneyList .item .money {
  color: #868686;
}

.order-submission .footer {
  width: 100%;
  height: 100rpx;
  background-color: #fff;
  padding: 0 30rpx;
  font-size: 28rpx;
  color: #333;
  box-sizing: border-box;
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 9;
  height: calc(100rpx+ constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
  height: calc(100rpx + env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
  padding-bottom: calc(0rpx+ constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
  padding-bottom: calc(0rpx + env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
}

.order-submission .footer .settlement {
  font-size: 30rpx;
  color: #fff;
  width: 240rpx;
  height: 70rpx;
  background-color: var(--view-theme);
  border-radius: 50rpx;
  text-align: center;
  line-height: 70rpx;
}

.footer .transparent {
  opacity: 0
}

.tipaddress {
  position: fixed;
  left: 13%;
  top: 25%;
  // margin-left: -283rpx;
  width: 560rpx;
  height: 614rpx;
  background-color: #fff;
  border-radius: 10rpx;
  z-index: 100;
  text-align: center;

  .top {
    width: 560rpx;
    height: 270rpx;
    border-top-left-radius: 10rpx;
    border-top-right-radius: 10rpx;
    background-image: url(../../../static/images/address.png);
    background-repeat: round;
    background-color: var(--view-theme);

    .tipsphoto {
      display: inline-block;
      width: 200rpx;
      height: 200rpx;
      margin-top: 73rpx;
    }
  }

  .bottom {
    font-size: 32rpx;
    font-weight: 400;

    .font1 {

      font-size: 36rpx;
      font-weight: 600;
      color: #333333;
      margin: 32rpx 0rpx 22rpx;
    }

    .font2 {
      color: #666666;
      margin-bottom: 48rpx;
    }

    .btn {
      width: 360rpx;
      height: 82rpx;
      border-radius: 42rpx;
      background: linear-gradient(to left, var(--view-theme) 0%, #f5f5f5 100%);
      color: #FFFFFF;
      line-height: 82rpx;
      margin: 0 auto;
    }
  }

}

.mark {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 99;
}

.table-header {
  width: 710rpx;
  padding: 52rpx 24rpx 46rpx;
  border-radius: 14rpx;
  margin: 0 30rpx;
  background-color: #FFFFFF;
  font-size: 24rpx;
  color: #999999;

  .top {
    display: flex;
    margin-bottom: 18rpx;
  }

  .name {
    flex: 1;
    min-width: 0;
    font-weight: 600;
    font-size: 34rpx;
    color: #333333;
  }

  .number {
    color: #333333;
  }

  .light {
    margin-right: 6rpx;
    font-weight: 600;
    font-size: 34rpx;
    color: var(--view-theme);
  }
}
</style>
